package Helper;

import java.util.InputMismatchException;

import javax.swing.JOptionPane;

import Model.Funcionario;
import View.Tmenu;

public abstract class Util {
	
	//ATRIBUTOS PUBLICOS USADOS NAS CLASSES DAS BASES
	public static Tmenu telaPrincipal;
	public static Funcionario funcLogado;
	public static int stAtivo = 1;
	public static int stInativo = 0;
	public static int stExcluido = 255;
	public static int solFinalizada = 8; 
	public static int tipoSolicitacao = 0;
	public static int tipoFinalizada = 1;
	public static int tipoNaoFinalizada = 2; //MOTIVO
	public static int ambLivre = 0;
	public static int ambEmUso = 3;
	
	public static void msgmAlerta(String mensagem) {
		JOptionPane.showMessageDialog(null, mensagem, "Administrador do Sistema", JOptionPane.INFORMATION_MESSAGE);
	}
	
	public static int msgmSimNao(String msgm, String titulo){
		return  JOptionPane.showConfirmDialog(null, msgm, titulo, JOptionPane.YES_NO_OPTION);
	}
	
	public static void msgmErro(String msgm, String titulo){
		JOptionPane.showMessageDialog(null, msgm, titulo, JOptionPane.ERROR_MESSAGE);
	}
	
	public static boolean isValidEmail(String email) {
	    boolean stricterFilter = true; 
	    String stricterFilterString = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
	    String laxString = ".+@.+\\.[A-Za-z]{2}[A-Za-z]*";
	    String emailRegex = stricterFilter ? stricterFilterString : laxString;
	    java.util.regex.Pattern p = java.util.regex.Pattern.compile(emailRegex);
	    java.util.regex.Matcher m = p.matcher(email);
	    return m.matches();
	}
	
	public static boolean isCNPJ(String CNPJ) 
	{	
		CNPJ = CNPJ.replace("-", "").replace(".", "");
		if (CNPJ.equals("00000000000000") || CNPJ.equals("11111111111111") || CNPJ.equals("22222222222222") || CNPJ.equals("33333333333333") ||
		    CNPJ.equals("44444444444444") || CNPJ.equals("55555555555555") || CNPJ.equals("66666666666666") || CNPJ.equals("77777777777777") ||
		    CNPJ.equals("88888888888888") || CNPJ.equals("99999999999999") ||
		   (CNPJ.length() != 14))
		{
			return(false);
		}
		 
		char dig13, dig14;
		int sm, i, r, num, peso;
		try {
			sm = 0;
		    peso = 2;
		    
		    for (i=11; i>=0; i--) {
			    num = (int)(CNPJ.charAt(i) - 48);
			    sm = sm + (num * peso);
			    peso = peso + 1;
			    if (peso == 10)
			    {
			       peso = 2;
			    }
		    }
			
		    r = sm % 11;
		    
		    if ((r == 0) || (r == 1))
		    {
		    	dig13 = '0';
		    }
		    else 
		    {
		    	dig13 = (char)((11-r) + 48);
		    }
			
		    sm = 0;
		    peso = 2;
		    for (i=12; i>=0; i--) 
		    {
		        num = (int)(CNPJ.charAt(i)- 48);
		        sm = sm + (num * peso);
		        peso = peso + 1;
		        if (peso == 10){
		        	peso = 2;	
		        }
		    }
			r = sm % 11;
		    if ((r == 0) || (r == 1))
		    {
		       dig14 = '0';
		    }
		    else 
		    {
		    	dig14 = (char)((11-r) + 48);
		    }
		    if ((dig13 == CNPJ.charAt(12)) && (dig14 == CNPJ.charAt(13)))
		    {
		       return(true);
		    }
		    else
		    { 
		     return(false);
		    }
		} 
		catch (InputMismatchException erro) 
		{
			return(false);
		}
	}
	
}
